package edu.uoc.vmerinom.tfc.domain;

// Generated 14-abr-2012 19:33:30 by Hibernate Tools 3.4.0.CR1

import static javax.persistence.GenerationType.IDENTITY;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * Perfil generated by hbm2java
 */
@Entity
@Table(name = "perfiles", uniqueConstraints = @UniqueConstraint(columnNames = "nombre"))
public class Perfil implements java.io.Serializable {
	/** Default Serial Version ID */
	private static final long serialVersionUID = 1L;

	private Integer id;
	private Date creado;
	private Date modificado;
	private Date alta;
	private Date baja;
	private String nombre;
	private boolean administrador;
	private boolean usuariosCrear;
	private boolean usuariosEliminar;
	private boolean usuariosModificar;
	private boolean usuariosModificarAcceso;
	private boolean perfilesCrear;
	private boolean perfilesEliminar;
	private boolean perfilesModificar;
	private boolean perfilesAsignar;
	private boolean componentesCrear;
	private boolean componentesEliminar;
	private boolean componentesModificar;
	private boolean gruposCrear;
	private boolean gruposEliminar;
	private boolean gruposModificar;
	private boolean reunionesCrear;
	private boolean reunionesEliminar;
	private boolean reunionesModificar;
	private boolean horasCrear;
	private boolean horasEliminar;
	private boolean horasModificar;
	private boolean solicitudesVer;
	private boolean solicitudesCorreo;
	private boolean solicitudesEliminar;
	private boolean solicitudesModificar;
	private List<Usuario> usuarios = new ArrayList<Usuario>(0);

	public Perfil() {
	}

	public Perfil(Date creado, Date modificado, Date alta, String nombre, boolean administrador, boolean usuariosCrear, boolean usuariosEliminar,
			boolean usuariosModificar, boolean usuariosModificarAcceso, boolean perfilesCrear, boolean perfilesEliminar, boolean perfilesModificar,
			boolean perfilesAsignar, boolean componentesCrear, boolean componentesEliminar, boolean componentesModificar, boolean gruposCrear,
			boolean gruposEliminar, boolean gruposModificar, boolean reunionesCrear, boolean reunionesEliminar, boolean reunionesModificar, boolean horasCrear,
			boolean horasEliminar, boolean horasModificar, boolean solicitudesVer, boolean solicitudesCorreo, boolean solicitudesEliminar,
			boolean solicitudesModificar) {
		this.creado = creado;
		this.modificado = modificado;
		this.alta = alta;
		this.nombre = nombre;
		this.administrador = administrador;
		this.usuariosCrear = usuariosCrear;
		this.usuariosEliminar = usuariosEliminar;
		this.usuariosModificar = usuariosModificar;
		this.usuariosModificarAcceso = usuariosModificarAcceso;
		this.perfilesCrear = perfilesCrear;
		this.perfilesEliminar = perfilesEliminar;
		this.perfilesModificar = perfilesModificar;
		this.perfilesAsignar = perfilesAsignar;
		this.componentesCrear = componentesCrear;
		this.componentesEliminar = componentesEliminar;
		this.componentesModificar = componentesModificar;
		this.gruposCrear = gruposCrear;
		this.gruposEliminar = gruposEliminar;
		this.gruposModificar = gruposModificar;
		this.reunionesCrear = reunionesCrear;
		this.reunionesEliminar = reunionesEliminar;
		this.reunionesModificar = reunionesModificar;
		this.horasCrear = horasCrear;
		this.horasEliminar = horasEliminar;
		this.horasModificar = horasModificar;
		this.solicitudesVer = solicitudesVer;
		this.solicitudesCorreo = solicitudesCorreo;
		this.solicitudesEliminar = solicitudesEliminar;
		this.solicitudesModificar = solicitudesModificar;
	}

	public Perfil(Date creado, Date modificado, Date alta, Date baja, String nombre, boolean administrador, boolean usuariosCrear, boolean usuariosEliminar,
			boolean usuariosModificar, boolean usuariosModificarAcceso, boolean perfilesCrear, boolean perfilesEliminar, boolean perfilesModificar,
			boolean perfilesAsignar, boolean componentesCrear, boolean componentesEliminar, boolean componentesModificar, boolean gruposCrear,
			boolean gruposEliminar, boolean gruposModificar, boolean reunionesCrear, boolean reunionesEliminar, boolean reunionesModificar, boolean horasCrear,
			boolean horasEliminar, boolean horasModificar, boolean solicitudesVer, boolean solicitudesCorreo, boolean solicitudesEliminar,
			boolean solicitudesModificar, List<Usuario> usuarios) {
		this.creado = creado;
		this.modificado = modificado;
		this.alta = alta;
		this.baja = baja;
		this.nombre = nombre;
		this.administrador = administrador;
		this.usuariosCrear = usuariosCrear;
		this.usuariosEliminar = usuariosEliminar;
		this.usuariosModificar = usuariosModificar;
		this.usuariosModificarAcceso = usuariosModificarAcceso;
		this.perfilesCrear = perfilesCrear;
		this.perfilesEliminar = perfilesEliminar;
		this.perfilesModificar = perfilesModificar;
		this.perfilesAsignar = perfilesAsignar;
		this.componentesCrear = componentesCrear;
		this.componentesEliminar = componentesEliminar;
		this.componentesModificar = componentesModificar;
		this.gruposCrear = gruposCrear;
		this.gruposEliminar = gruposEliminar;
		this.gruposModificar = gruposModificar;
		this.reunionesCrear = reunionesCrear;
		this.reunionesEliminar = reunionesEliminar;
		this.reunionesModificar = reunionesModificar;
		this.horasCrear = horasCrear;
		this.horasEliminar = horasEliminar;
		this.horasModificar = horasModificar;
		this.solicitudesVer = solicitudesVer;
		this.solicitudesCorreo = solicitudesCorreo;
		this.solicitudesEliminar = solicitudesEliminar;
		this.solicitudesModificar = solicitudesModificar;
		this.usuarios = usuarios;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "creado", nullable = false, length = 19)
	public Date getCreado() {
		return this.creado;
	}

	public void setCreado(Date creado) {
		this.creado = creado;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "modificado", nullable = false, length = 19)
	public Date getModificado() {
		return this.modificado;
	}

	public void setModificado(Date modificado) {
		this.modificado = modificado;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "alta", nullable = false, length = 19)
	public Date getAlta() {
		return this.alta;
	}

	public void setAlta(Date alta) {
		this.alta = alta;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "baja", length = 19)
	public Date getBaja() {
		return this.baja;
	}

	public void setBaja(Date baja) {
		this.baja = baja;
	}

	@Column(name = "nombre", unique = true, nullable = false, length = 100)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "administrador", nullable = false)
	public boolean isAdministrador() {
		return this.administrador;
	}

	public void setAdministrador(boolean administrador) {
		this.administrador = administrador;
	}

	@Column(name = "usuarios_crear", nullable = false)
	public boolean isUsuariosCrear() {
		return this.usuariosCrear;
	}

	public void setUsuariosCrear(boolean usuariosCrear) {
		this.usuariosCrear = usuariosCrear;
	}

	@Column(name = "usuarios_eliminar", nullable = false)
	public boolean isUsuariosEliminar() {
		return this.usuariosEliminar;
	}

	public void setUsuariosEliminar(boolean usuariosEliminar) {
		this.usuariosEliminar = usuariosEliminar;
	}

	@Column(name = "usuarios_modificar", nullable = false)
	public boolean isUsuariosModificar() {
		return this.usuariosModificar;
	}

	public void setUsuariosModificar(boolean usuariosModificar) {
		this.usuariosModificar = usuariosModificar;
	}

	@Column(name = "usuarios_modificar_acceso", nullable = false)
	public boolean isUsuariosModificarAcceso() {
		return this.usuariosModificarAcceso;
	}

	public void setUsuariosModificarAcceso(boolean usuariosModificarAcceso) {
		this.usuariosModificarAcceso = usuariosModificarAcceso;
	}

	@Column(name = "perfiles_crear", nullable = false)
	public boolean isPerfilesCrear() {
		return this.perfilesCrear;
	}

	public void setPerfilesCrear(boolean perfilesCrear) {
		this.perfilesCrear = perfilesCrear;
	}

	@Column(name = "perfiles_eliminar", nullable = false)
	public boolean isPerfilesEliminar() {
		return this.perfilesEliminar;
	}

	public void setPerfilesEliminar(boolean perfilesEliminar) {
		this.perfilesEliminar = perfilesEliminar;
	}

	@Column(name = "perfiles_modificar", nullable = false)
	public boolean isPerfilesModificar() {
		return this.perfilesModificar;
	}

	public void setPerfilesModificar(boolean perfilesModificar) {
		this.perfilesModificar = perfilesModificar;
	}

	@Column(name = "perfiles_asignar", nullable = false)
	public boolean isPerfilesAsignar() {
		return this.perfilesAsignar;
	}

	public void setPerfilesAsignar(boolean perfilesAsignar) {
		this.perfilesAsignar = perfilesAsignar;
	}

	@Column(name = "componentes_crear", nullable = false)
	public boolean isComponentesCrear() {
		return this.componentesCrear;
	}

	public void setComponentesCrear(boolean componentesCrear) {
		this.componentesCrear = componentesCrear;
	}

	@Column(name = "componentes_eliminar", nullable = false)
	public boolean isComponentesEliminar() {
		return this.componentesEliminar;
	}

	public void setComponentesEliminar(boolean componentesEliminar) {
		this.componentesEliminar = componentesEliminar;
	}

	@Column(name = "componentes_modificar", nullable = false)
	public boolean isComponentesModificar() {
		return this.componentesModificar;
	}

	public void setComponentesModificar(boolean componentesModificar) {
		this.componentesModificar = componentesModificar;
	}

	@Column(name = "grupos_crear", nullable = false)
	public boolean isGruposCrear() {
		return this.gruposCrear;
	}

	public void setGruposCrear(boolean gruposCrear) {
		this.gruposCrear = gruposCrear;
	}

	@Column(name = "grupos_eliminar", nullable = false)
	public boolean isGruposEliminar() {
		return this.gruposEliminar;
	}

	public void setGruposEliminar(boolean gruposEliminar) {
		this.gruposEliminar = gruposEliminar;
	}

	@Column(name = "grupos_modificar", nullable = false)
	public boolean isGruposModificar() {
		return this.gruposModificar;
	}

	public void setGruposModificar(boolean gruposModificar) {
		this.gruposModificar = gruposModificar;
	}

	@Column(name = "reuniones_crear", nullable = false)
	public boolean isReunionesCrear() {
		return this.reunionesCrear;
	}

	public void setReunionesCrear(boolean reunionesCrear) {
		this.reunionesCrear = reunionesCrear;
	}

	@Column(name = "reuniones_eliminar", nullable = false)
	public boolean isReunionesEliminar() {
		return this.reunionesEliminar;
	}

	public void setReunionesEliminar(boolean reunionesEliminar) {
		this.reunionesEliminar = reunionesEliminar;
	}

	@Column(name = "reuniones_modificar", nullable = false)
	public boolean isReunionesModificar() {
		return this.reunionesModificar;
	}

	public void setReunionesModificar(boolean reunionesModificar) {
		this.reunionesModificar = reunionesModificar;
	}

	@Column(name = "horas_crear", nullable = false)
	public boolean isHorasCrear() {
		return this.horasCrear;
	}

	public void setHorasCrear(boolean horasCrear) {
		this.horasCrear = horasCrear;
	}

	@Column(name = "horas_eliminar", nullable = false)
	public boolean isHorasEliminar() {
		return this.horasEliminar;
	}

	public void setHorasEliminar(boolean horasEliminar) {
		this.horasEliminar = horasEliminar;
	}

	@Column(name = "horas_modificar", nullable = false)
	public boolean isHorasModificar() {
		return this.horasModificar;
	}

	public void setHorasModificar(boolean horasModificar) {
		this.horasModificar = horasModificar;
	}

	@Column(name = "solicitudes_ver", nullable = false)
	public boolean isSolicitudesVer() {
		return this.solicitudesVer;
	}

	public void setSolicitudesVer(boolean solicitudesVer) {
		this.solicitudesVer = solicitudesVer;
	}

	@Column(name = "solicitudes_correo", nullable = false)
	public boolean isSolicitudesCorreo() {
		return this.solicitudesCorreo;
	}

	public void setSolicitudesCorreo(boolean solicitudesCorreo) {
		this.solicitudesCorreo = solicitudesCorreo;
	}

	@Column(name = "solicitudes_eliminar", nullable = false)
	public boolean isSolicitudesEliminar() {
		return this.solicitudesEliminar;
	}

	public void setSolicitudesEliminar(boolean solicitudesEliminar) {
		this.solicitudesEliminar = solicitudesEliminar;
	}

	@Column(name = "solicitudes_modificar", nullable = false)
	public boolean isSolicitudesModificar() {
		return this.solicitudesModificar;
	}

	public void setSolicitudesModificar(boolean solicitudesModificar) {
		this.solicitudesModificar = solicitudesModificar;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "perfil")
	public List<Usuario> getUsuarios() {
		return this.usuarios;
	}

	public void setUsuarios(List<Usuario> usuarios) {
		this.usuarios = usuarios;
	}

}
